# This file is part of The Vu Toolkit.
#
# The Vu Toolkit is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3.0 of the License, or (at your option) any later version.
#
# The Vu Toolkit is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with The Vu Toolkit; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.
#
# Copyright © Zak Fenton 2008
#

module Vu::SVG
	# An event handler. Callbacks can be added and removed as desired.
	class Event
		def initialize ()
			@callbacks = []
		end
	
		# Add a callback block
		def add (&block)
			@callbacks = @callbacks + [block]
		end
		
		# Remove a callback
		# FIXME: unimplemented! i hope this can be done in ruby :s
		def remove (&block)
		end
		
		# Invokes all callbacks
		def signal
			for b in @callbacks
				b.call
			end
		end
	end
end

